package org.vsg.common.pagination.apps;

import org.vsg.common.pagination.carrier.CarrierCreatedObjectException;
import org.vsg.common.pagination.carrier.CarrierNotSupportedException;
import org.vsg.common.pagination.carrier.CarrierValueDefinedException;
import org.vsg.common.pagination.carrier.ValueCarrier;
import org.vsg.common.pagination.wrapper.PaginationWrapper;

public interface ValueCarrierApplicationContext {
	
	/**
	 * generate value carrier for pagination object value
	 * @param className
	 * @return
	 */
	public ValueCarrier generateValueCarrier(Class className) throws CarrierNotSupportedException , CarrierValueDefinedException , CarrierCreatedObjectException;
	
	public PaginationWrapper generatePaginationWrapper();

}
